

#import <UIKit/UIKit.h>
@class CYTableView;

@protocol CYTableViewDataSource <NSObject>

@required
- (NSInteger)numberOfSectionsInCYTableView:(UITableView *)cy_tableView;
- (NSInteger)cy_tableView:(UITableView *)cy_tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)cy_tableView:(UITableView *)cy_tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
@end

@protocol CYTableViewDelegate <NSObject>
@required
- (CGFloat)cy_tableView:(UITableView*)cy_tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
- (CGFloat)cy_tableView:(UITableView *)cy_tableView heightForHeaderInSection:(NSInteger)section;
- (UIView *)cy_tableView:(UITableView *)cy_tableView viewForHeaderInSection:(NSInteger)section;

@optional
- (UIView *)cy_tableView:(UITableView *)cy_tableView viewForFooterInSection:(NSInteger)section;
- (CGFloat)cy_tableView:(UITableView *)cy_tableView heightForFooterInSection:(NSInteger)section;
- (void)cy_tableView:(UITableView *)cy_tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
@end

//@protocol CYTableViewProtocol <NSObject>
//
//- (instancetype)initWithBounds:(CGRect)bounds backGroundView:(UIView *)view dataSource:(id<CYTableViewDataSource>)dataSource delegate:(id<CYTableViewDelegate>)deleagte;
//- (void)reloadData;
//@end


@interface CYTableView : UIView<UITableViewDataSource, UITableViewDelegate, UIScrollViewDelegate>

@property (nonatomic,weak)id<CYTableViewDataSource> cy_tableView_dataSource;
@property (nonatomic,weak)id<CYTableViewDelegate> cy_tableView_delegate;
@property (nonatomic, assign) CGFloat backViewHeight;//被遮挡视图高度


- (instancetype)initWithBounds:(CGRect)bounds backGroundView:(UIView *)view dataSource:(id<CYTableViewDataSource>)dataSource delegate:(id<CYTableViewDelegate>)deleagte;
- (void)reloadData;
@end
